package top.juntower.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import top.juntower.pojo.Comment;
import top.juntower.pojo.ReplyComments;
import top.juntower.pojo.dto.GameInformationDto;
import top.juntower.pojo.vo.CommentVo;
import top.juntower.pojo.vo.GameComment;
import top.juntower.pojo.vo.ReplyCommentsVo;

import java.util.List;
import java.util.Map;

@Mapper
public interface CommentMapper {

    /**
     *添加用户评论
     */
    int addComment(Map map);

    /**
     *查询游戏评分
     */
    Double cscore(Integer giId);


    /**
     *修改游戏评分
     */
    int updateCscore(@Param("giId") Integer giId,@Param("cscore") Double cscore);

    /**
     *查询用户是否评论
     */
    String isComment(Map map);

    /**
     *查询默认评论
     */
    List<Comment> commentNew(@Param("giId") Integer giId,@Param("uId") Integer uId,Integer pageNum,Integer pageSize);

    /**
     *查询默认评论
     */
    List<Comment> iscommentNew(@Param("giId") Integer giId,Integer pageNum,Integer pageSize);

    /**
     *查询最热评论
     */
    List<Comment> commentHot(@Param("giId") Integer giId,@Param("uId") Integer uId,Integer pageNum,Integer pageSize);

    /**
     *查询最热评论
     */
    List<Comment> iscommentHot(@Param("giId") Integer giId,Integer pageNum,Integer pageSize);

    /**
     *查询是否点赞数
     */
    String isCommentm(Map map);

    /**
     *插入点赞信息
     */
    int insertCommentm(Map map);

    /**
     *修改点赞数
     */
    int updateComment(Map map);

    /**
     *修改点赞数减
     */
    int updateComment1(Map map);

    /**
     *修改状态
     */
    int updateCmState(Map map);

    /**
     *回复评论
     */
    int addGamereview(Map map);

    /**
     *查询回复信息
     */
    List<ReplyComments> replyComments(@Param("cId") Integer cId,Integer pageNum,Integer pageSize);

    /**
     *  我的评价
     */
    List<CommentVo> MyComments(@Param("uId") Integer uId, Integer pageNum, Integer pageSize);


    /**
     *  我的信息
     */
    List<ReplyCommentsVo> myReplyComments(@Param("uId") Integer uId, Integer pageNum, Integer pageSize);

    /**
     *  游戏内我的评价
     */
    GameComment myGameComment(@Param("giId") Integer giId,@Param("uId")  Integer uId);

    /**
     *  删除评论
     */
    int delComment(Integer cId);

    /**
     *  删除子评论
     */
    int delCommentm(Integer cId);

    /**
     *  修改评论
     */
    int updComment(Map map);

}


